package middleware

import (
	"github.com/gin-gonic/gin"
	"go-web-admin/logger"
	"go-web-admin/response"
	"runtime/debug"
)

// SystemErrorHandler 统一500错误处理函数
func SystemErrorHandler(c *gin.Context) {
	defer func() {
		if r := recover(); r != nil {
			//打印错误堆栈信息
			//log.Printf("panic: %v\n", r)
			logger.Log.Errorf("系统异常: %v", r)
			debug.PrintStack()

			// 返回统一的 JSON 错误响应
			response.FailSysError(c)
		}
	}()
	c.Next()
}
